-- File Name		: MIMOSA23.BSD
-- Device			: MIMOSA23
-- Version			: v1.0
-- Date				: 04.2011
-- Author			: IFT @ Uib

-- ************************************************************************
-- *                     ENTITY DEFINITION WITH PORTS                     *
-- ************************************************************************

entity MIMOSA23 is
  generic (PHYSICAL_PIN_MAP : string := "PHASE1");

port (
--Dedicated Input Pins
    CkPLL   : in bit;
    CkCMOS  : in bit;
    ClkLvds : in bit;
    START   : in bit;
    SPEAK   : in bit;

-- Dedicated Output Pins
    MK_CLK_A: out bit;
    CLKA    : out bit;
    Tst2Pad : out bit;
    Tst1Pad : out bit;

--JTAG Ports
    TCK     : in bit;
    TMS     : in bit;
    TDI     : in bit;
    TDO     : out bit;
);

use STD_1149_1_1999.all;

attribute COMPONENT_CONFORMANCE of MIMOSA23 :
          entity is "STD_1149_1_1999";

-- ************************************************************************
-- *                             PIN MAPPING                              *
-- ************************************************************************

attribute PIN_MAP of MIMOSA23 : entity is PHYSICAL_PIN_MAP;
constant PHASE1 : PIN_MAP_STRING :=
--Dedicated Input Pins
    "CkPLL  : 149," &
    "CkCMOS : 92 ," &
    "ClkLvds: 200," &	--Can't find this pin in the pin list table from manual...
    "START  : 51 ," &
    "SPEAK  : 49 ," &

-- Dedicated Output Pins
    "MK_CLK_A   : 107," &
    "CLKA       : 106," &
    "Tst2Pad    : 111," &
    "Tst1Pad    : 109," &

--JTAG ports
    "TCK    : 10,"  &
    "TMS    : 12,"  &
    "TDI    : 11,"  &
    "TDO    : 13 ";

-- ************************************************************************
-- *                       IEEE 1149.1 TAP PORTS                          *
-- ************************************************************************

attribute TAP_SCAN_IN of TDI     : signal is true;
attribute TAP_SCAN_MODE of TMS   : signal is true;
attribute TAP_SCAN_OUT of TDO    : signal is true;
attribute TAP_SCAN_CLOCK of TCK  : signal is (10.00e6,BOTH);

-- ************************************************************************
-- *                   INSTRUCTIONS AND REGISTER ACCESS                   *
-- ************************************************************************

attribute INSTRUCTION_LENGTH of MIMOSA23 : entity is 5;	--instruction length is 5 bits
attribute INSTRUCTION_OPCODE of MIMOSA23 : entity is --all accessible instructions are listed here.
    "EXTEST         (00001)," &
    "HIGHZ          (00010)," &
    "INTEST         (00011)," &
    "CLAMP          (00100)," &
    "SAMPLE         (00101)," &
    "IDCODE         (01110)," &
    "BIAS_GEN       (01111)," &
    "PATTERNL0_REG  (10000)," &
    "DIS_LATCH      (10001)," &
    "SEQ_REG        (10010)," &
    "CTRL_REG       (10011)," &
    "PATTERNL1_REG  (10100)," &
    "RO_MODE1       (11101)," &
    "RO_MODE0       (11110)," &
    "BYPASS         (11111) " ;

attribute INSTRUCTION_CAPTURE of MIMOSA23 : entity is "10101";

attribute INSTRUCTION_DISABLE of MIMOSA23 : entity is "HIGHZ";

attribute IDCODE_REGISTER of MIMOSA23 : entity is --0x50483101
    "0101"&               --4-bit Version
    "0000010010000011"&   --16-bit Part Number
    "00010000000"&        --11-bit Manufacturer's Identity
    "1";                  --Mandatory LSB

attribute USERCODE_REGISTER of MIMOSA23 : entity is
    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

attribute REGISTER_ACCESS of MIMOSA23 : entity is --user defined data registers are listed here.
    "DEVICE_ID          ( IDCODE )," &
    "BYPASS             ( HIGHZ, CLAMP )," &
    "BIAS_DAC[128]      ( BIAS_GEN )," &
    "LINEPATL0_REG[640] ( PATTERNL0_REG )," &
    "LINEPATL1_REG[640] ( PATTERNL1_REG )," &
    "RO_MODE0[8]        ( RO_MODE0 )," &
    "RO_MODE1[8]        ( RO_MODE1 )," &
    "DIS_DISCRI[640]    ( DIS_LATCH )," &
    "SEQUENCER_REG[128] ( SEQ_REG )," &
    "CONTROL_REG[40]    ( CTRL_REG )";



-- ************************************************************************
-- *                    BOUNDARY SCAN CELL INFORMATION                    *
-- ************************************************************************

attribute BOUNDARY_LENGTH of MIMOSA23   : entity is 9; --DR length is 9
attribute BOUNDARY_REGISTER of MIMOSA23 : entity is

    "8  (BC_4, CkPLL, input, X)," &
    "7  (BC_4, CkCMOS, input, X)," &
    "6  (BC_4, ClkLvds, input, X)," &
    "5  (BC_4, START, input, X)," &
    "4  (BC_4, SPEAK, input, X)," &
    "3  (BC_1, MK_CLK_A, output3, X, 8, 0, Z)," &
    "2  (BC_1, CLKA, output3, X, 8, 0, Z)," &
    "1  (BC_1, Tst2Pad, output3, X, 8, 0, Z)," &
    "0  (BC_1, Tst1Pad, output3, X, 8, 0, Z)";

end MIMOSA23;

